package com.wgy.day40SQL.SQL分类;
/*
DDL(Data Definition Language): 数据定义语言 用来定义数据库对象:数据库,表,列等
1.操作数据库:CRUD
   Create:创建
         创建数据库: create database 数据库名称;
         创建数据库,判断不存在,再创建: create database if not exists 数据库名称;
         创建数据库,并指定字符集: create database 数据库名称 character set 字符集名;
         创建数据库,判断不存在,再创建,并指定字符集为GBK :create database if not exists db character set GBK;

  Retrieve:查询
          查询所有数据库的名称: show databases;
          查询某个数据库的字符集(查询某个数据库的创建语句):show create database 数据库名称;

  Update:修改
         修改数据库的字符集:alter database 数据库名称 character set字符集名称;

  Delete:删除
         删除数据库:drop database 数据库名称;
         判断数据库存在,再删除数据库: drop database if exists 数据库名称

  使用数据库:
        查询当前正在使用的数据库名称:select database();
        使用数据库: use 数据库名称;
2.操作表
    Create:创建
           创建表: create table 表名{
                  列名1 数据类型1,
                  列表2 数据类型2,
                  ...
                  列表n 数据类型n
                  };
                  注意:最后一列,不需要加逗号(,)
            复制表: create table 表名 like 被复制的表名

            SQL的数据常用数据类型:
                   1. int: 整数类型    age int,
                   2.double:小数类型   score double(5,2),  :这个分数总共是5位数,小数点后面有2位数
                   3.date: 日期,只包含年月日  格式:yyyy--MM--dd
                   4.datetime:日期,包含年月日时分秒 格式:yyyy--MM--dd HH:mm:ss
                   5.timestamp:时间戳类型  格式:yyyy--MM--dd HH:mm:ss
                               如果不给这个字段赋值或者赋值为null,则默认使用当前的系统时间
                   6.varchar: 字符串类型  name varchar(20):姓名最大20个字符

             创建表举例:
              create table student(
                  ID int,
                  name varchar(32),
                  age int,
                  score double(4,1),
                  birthday date,
                  insertTime timestamp
              );

    Retrieve:查询
             查询某个数据库中所有的表名称:show tables;
             查询某个表的结构: desc 表名;
             查询某个表的字符集: show create table 表名;

    Update:修改
           修改表名称: alter table 表名 rename to 新的表名;
           修改表的字符集:alter table 表名 character set 字符集名称;
           添加一列: alter table 表名 add 列名 数据类型;
           修改名称类型:alter table 表名 change 列名 新列名 新的数据类型; alter table student change gender sex varchar(2);
                      alter table 表名 modify 列名 新数据类型;alter table student modify sex varchar(10);
           删除列: alter table 表名 drop 列名;

    Delete:删除
          删除表:drop table 表名;
          先判断表存在,再删除表: drop table if exists 表名;

*/
public class Demo02DDL {
}
